<html>
<head><title>Perl 6 mythen</title>
<style>
body { margin: 0px }
div { height: 728px;padding: 20px;;background: #a0f0a0; }
body, td,th { font-size:36pt; font-family: arial}
h1 { margin-top: 0; font-size: 48pt; }
li { padding-left: 1ex; margin-bottom: 1ex; }
pre, tt { color: maroon }
.klein { font-size: 24pt; }
ul { list-style-image: url(kameel.png) }
</style>

</head>
<body onkeypress="scrollBy(0, event.keyCode ? -768 : 768); return false">
<div>
<h1>"Perl 6 Myths"</h1><br>
Version: 2 (8<sup>th</sup> German Perl Workshop, 2006)<br>
Speaker: Juerd<br>
Duration: any(5..10) minutes<br><br>
<i>This talk is about Perl 6, not about Parrot.</i>
</div>

<div>
<h1>Perl 6 is an April fools joke</h1>
No, Parrot was that.
</div>

<div>
<h1>String concat is underscore</h1>
No, it is tilde (~).
</div>

<div>
<h1>Backward compatibility is broken</h1>
No.  Perl 6 can use CPAN modules. 
<br /><br />
The implementation must handle mixed P5/P6 programs correctly.
<br /><br />
There will perhaps be a conversion script.
</div>

<div>
<h1>Perl 5 is good enough</h1>
Perl 5 has slow subs, unreadable internals, and no specification.
<br /><br />
Threading in Perl 5 is a problem.
</div>

<div>
<h1>Perl 6 development is closed and secret</h1>
Almost everything happens in public mailing lists.
<br /><br />
You can join today and hack away at Parrot, Pugs, and the many subprojects. 
</div>

<div>
<h1>Perl 6 blocks Perl 5 development</h1>
Different people work on the different projects, so no.<br><br>
Because context switches are hard, and time is limited, this is a natural situation.<br><br>
Perl 6 <i>improves</i> Perl 5 sometimes, even. Perl 5.10 will have:
<ul>
<li> <tt>//</tt>, <tt>err</tt> (defined-or)
<li> <tt>~~</tt> (smart match)
<li> <tt>given</tt>, <tt>when</tt> (switch)
</ul>
</div>

<div>
<h1>Perl 6 is harder than Perl 5</h1>
There is more to learn, but it will not get harder.
<br /><br />
Consistency (less exceptions!) and new ground breaking features make things easier.
<br /><br />
The end result, I think, is balanced.
</div>

<div>
<h1>Perl 6 is slower</h1>
Whoever says this, is either paranormally gifted...
<br><br>
...or basing the claim on the current state of Parrot or Pugs, which are nice
software but not quite ready for production, and no indication of the final
product's performance.
</div>

<div>
<h1>CPAN-modules lose their value</h1>
Through Ponie, many Perl 5 modules will be usable in Parrot.
<br><br>
Pugs already compiles Perl 6 to run on Perl 5.  We will make CPAN modules
transparently accessible to Perl 6 programs.
<br><br>
And of course we get modules for free from languages that switch to Parrot.
</div>

<div>
<h1>There are 0 lines of code in Perl 6</h1>
Simply not true.
<br><br>
We have 35_000+ lines of Perl 6 tests, 7_000+ lines of examples, all written
in Perl 6.
</div>

<div>
<h1>Perl 6 depends on Parrot</h1>
Even though The Plan prescribes that Perl 6 will run on Parrot, and that Parrot
is written primarily for Perl 6, we <i>can</i> have Perl 6 without Parrot.
<br><br>
In fact, Pugs already does support multiple backends, like Javascript, PIR
(Parrot), its own evaluator, and... the Perl 5 runtime.
</div>

<div>
<h1>The rest of the world makes the standard</h1>
Other languages often have good features, and we should steal them.
<br><br>
The dot is stolen because <i>it is better</i>.
It saves two keystrokes (67%), one character (50%), and visual clutter.
</div>

<div>
<h1>The dot makes it Java-like</h1>
That's up to the users. I think we can make it Ruby-like, Python-like, or Perl
6-like instead of Java-like. <br><br>
<tt>$i++</tt> is still there. Don't worry, we won't have
<tt>system().foo().bar().i().value()<br>.please().increment();</tt><br><br>
</div>

<div>
<h1>Obfuscation and golf will die</h1>
Perl 6 has many new ways to obfuscate and shorten code.
<br><br>
There's less flexibility in where you can put whitespace, but you get
hyperoperators, junctions, and twigils to compensate. If you want to write
unreadable, ugly code, you still can!
</div>

<div>
<h1>It'll take <i>years</i> until we have Perl 6</h1>
Pugs is already around, and you can play with it as much as you like.
<br><br>
Perl 6 will be released <i>when it's ready</i>.
<br><br>
If you want to help make it ready, please contribute!
</div>

<div>
<h1>It's hard to contribute</h1>
We try to make it easy.
<br><br>
Committer bits are given out to everybody, there is a shared development machine
you can get free access to, there are open mailinglists and IRC channels.
</div>

<div>
<h1>Perl 6 is not Perl</h1>
By the same logic, neither was Perl 5.  Or Perl 4.  Or Perl 3.
<br><br>
...or Perl 2 (which changes /\.\*/ to /.*/).
<br><br>
Try to look at some Perl 6 programs; they really feel Perlish.
</div>

<div>
<h1>My Perl 5 knowledge will be useless.</h1>
Perl 5 is not going away.  In fact, Perl 5.9 has many Perl 6 features you can
start using -- see "features.pm" for details.
<br><br>
Unlike proprietary technologies such as J2EE or .NET, the transition
to Perl 6 will be gradual.
</div>

<div>
<h1>The end</h1>
Don't believe in myths, don't believe in the FUD (fear, uncertainty, doubt)
that people spread. Instead, believe in Perl 6, and the many people who spend
lots of time on making it happen.
<br><br>
This talk is in the Pugs subversion repository, under
<tt>pugs/docs/talks/p6myths2.html</tt>.
<br><br>
Please join us in <tt>#perl6</tt> on Freenode.
</div>

</body>
</html>
